//题目描述
//四平方和定理，又称为拉格朗日定理：
//每个正整数都可以表示为至多4 个正整数的平方和。如果把0 包括进去，就正好可以表示为4 个数的平方和。
//比如：5=0^2+0^2+1^2+2^2  7=1^2+1^2+1^2+2^2。
//对于一个给定的正整数，可能存在多种平方和的表示法。
//要求你对4 个数排序使得0≤a≤b≤c≤d。
//并对所有的可能表示法按a, b, c, d 为联合主键升序排列，最后输出第一个表示法。
//输入格式
//程序输入为一个正整数N(N < 5×10^6)。
//输出格式
//要求输出4 个非负整数，按从小到大排序，中间用空格分开。
//输入输出样例
//输入 5输出0 0 1 2
//输入 12输出 0 2 2 2
//输入 773535
//输出 1 1 267 838
//时限 3 秒, 256M。
//根据题目要求直接四重暴力肯定过不了，所以要将其变成三重
//因为x=i*i+j*j+k*k+l*l l=根号下x-i*i+j*j+k*k,所以只需判断l是否为整数即可
//这道题可以不用开long long
#include<bits/stdc++.h>
using namespace std;
int main() {
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int n;
	cin >> n;
	for (int i = 0; i * i <= n; i++) {
		for (int j = 0; j * j + i * i <= n; j++) {
			for (int k = 0; j * j + i * i + k * k <= n; k++) {
				int x = n - (j * j + i * i + k * k);
				int num = sqrt(x);
				if (num * num == x) {
					cout << i << " " << j << " " << k << " "<<num<<"\n";
					return 0;
				}
			}
		}
	}
}